/**
 * @author Vitor Franco do Carmo (vitor.carmo@capgemini.com)
 * @since 04/10/2013
 *
 */
package br.com.vfcfw.controller.enums;

/**
 * Enumeração com os estados possíveis de um CRUD Managed Bean.
 * 
 * @author Vitor Franco do Carmo (vitor.carmo@capgemini.com)
 * @since 04/10/2013
 * 
 */
public enum EEstadoCRUD implements IEstadoCRUD {

    /** Estado de pesquisa. */
    PESQUISANDO("pesquisando"),

    /** Estado de inserção. */
    INSERINDO("inserindo"),

    /** Estado de edição. */
    EDITANDO("editando"),

    /** Estado de visualização. */
    VISUALIZANDO("visualizando");

    private String estado;

    /**
     * Construtor da classe.
     * 
     * @param estado Estado do Managed Bean.
     */
    private EEstadoCRUD(String estado) {

        this.estado = estado;
    }

    /**
     * {@inheritDoc}
     * 
     * @see br.com.vfcfw.controller.enums.IEstadoCRUD#isPesquisando(br.com.vfcfw.controller.enums.IEstadoCRUD)
     */
    @Override
    public boolean isPesquisando(IEstadoCRUD estadoCRUD) {

        return EEstadoCRUD.PESQUISANDO.equals(estadoCRUD);
    }

    /**
     * {@inheritDoc}
     * 
     * @see br.com.vfcfw.controller.enums.IEstadoCRUD#isInserindo(br.com.vfcfw.controller.enums.IEstadoCRUD)
     */
    @Override
    public boolean isInserindo(IEstadoCRUD estadoCRUD) {

        return EEstadoCRUD.INSERINDO.equals(estadoCRUD);
    }

    /**
     * {@inheritDoc}
     * 
     * @see br.com.vfcfw.controller.enums.IEstadoCRUD#isEditando(br.com.vfcfw.controller.enums.IEstadoCRUD)
     */
    @Override
    public boolean isEditando(IEstadoCRUD estadoCRUD) {

        return EEstadoCRUD.EDITANDO.equals(estadoCRUD);
    }

    /**
     * {@inheritDoc}
     * 
     * @see br.com.vfcfw.controller.enums.IEstadoCRUD#isVisualizando(br.com.vfcfw.controller.enums.IEstadoCRUD)
     */
    @Override
    public boolean isVisualizando(IEstadoCRUD estadoCRUD) {

        return EEstadoCRUD.VISUALIZANDO.equals(estadoCRUD);
    }

    /**
     * Retorna o estado do Managed Bean.
     * 
     * @return Estado do Managed Bean.
     */
    public String getEstado() {

        return estado;
    }

}
